export interface Pokemon {
  id: string
  // 宝可梦名称
  name: string
  // 宝可梦图标
  icon: string
  // 基础出现概率 0-100
  probability: number
  // 出现所需的幸福点数
  requiredHappyPoint: number
  // 基础捕获难度 0-100
  catchDifficulty: number
  // 家园能力
  abilities: {
    type: abilitiesType
    level: number
  }[]
  // 消耗树果速度
  berryConsumption: number
  // 视图
  uiView: PokemonUiView
}
type abilitiesType =
  // 播种
  | 'seed'
  // 生火
  | 'fire'
  // 浇水
  | 'water'
  // 发电
  | 'electric'
  // 手工
  | 'handwork'
  // 挖矿
  | 'mining'
  // 科研
  | 'research'

// 家园能力
export type Abilities = {
  // 能力类型
  type: abilitiesType
  // 能力名称
  name: string
  // 能力描述
  description: string
  // 优先级
  priority: number
  // 图标
  icon: string
}

// 宝可梦（已捕获）
export interface CapturedPokemon {
  id: string
  // 捕获ID
  captureId: string
  // 当前正在进行的工作
  currentWork: {
    type: abilitiesType
    level: number
  }[]
  // 当前饱食度
  currentSatiety: number
  // 捕获时间
  captureTime: string
}
// 宝可梦行为动作
export interface PokemonAction {
  id?: string
  // 行为描述
  description: string
  // 对捕获难度的影响
  catchDifficultyEffect: number
}

export interface PokemonUiView {
  themeColor: string
}

export type PokemonGlobaData = {
  data: { [key: number]: Pokemon }
  dataArr: Pokemon[]
  length: number
  getDataById: (id: string) => Pokemon | undefined
}
